// all these tables are used in many functions as
#pragma once

// specific to the brute force zhou process
//int TblUniqFlag[8] = {1,1,1,0,1,0,0,0};
extern int TblOtherMask9[9] ; //((1<<i) * Zhoucol) ^ BIT_SET_30
extern int Tblmod3[27];  // i%3
extern int  Tblstartblock[27]; // (i%3) * 27 in zhou brute force
extern int TblAnother1[27];// other bands for a F[i]
extern int TblAnother2[27];
extern int TblBoard_BlockMask27[27]; //1<<i 
extern int TblRowMask[8];// rows where single  found  000 to 111
extern int TblShrinkUnsolved[8]; // only unsolved rows
extern int TblMask26row[9];
extern int TblBitToInd[512] ; // this is one  bit 1-9 or 0

extern int TblOtherSameBand[27][8]; // cleaning cells other digits
extern int TblShrinkMask[512] ;// existing minirows 000 to 111


extern int TblComplexShortBox[512];
extern int TblNewBoxRow[512]; // new minirow alone in box after shrink

extern int TblKillMask[512]; // killed candidates pointing general
extern int TblComplexMask[512]; // keep mini rows still valid optimised process
extern int TblComplexShort[512];  // same as complex  minirows still valid

extern int TblColumnSingle[512]; // single in column applied to shrinked bloc
extern int TblShrinkSingle[512] ; // keep only rows with single
extern int TblRowUniq[512] ; // 1 is row not defined in block  mode  to 111
extern int TblColumnSingleinBox[512];
extern int TblMaskSingle[512]; // kill in other blocks locked column /box
extern int TblMaskDouble[512];// kill for locked in box / column


